Operations:

Format

Syntax:

Operation:

Operands:

Architecture revision

Opcode

1

padds.ub Rd, Rx, Ry

Rd[31:24] = SATU(ZE(Rx[31:24], 9) + ZE(Ry[31:24], 9), 8) ; 
Rd[23:16] = SATU(ZE(Rx[23:16], 9) + ZE(Ry[23:16], 9), 8);
Rd[15:8] = SATU(ZE(Rx[15:8], 9) + ZE(Ry[15:8], 9), 8); 
Rd[7:0] = SATU(ZE(Rx[7:0], 9) + ZE(Ry[7:0], 9), 8);
I, II, III, IV.{d, x, y} ∈ {0, 1, …, 15}

Rev1+

111

Rx

00000

Ry

001000110100

Rd

3

4

5

4

12

4

2

padds.sb Rd, Rx, Ry

Rd[31:24] = SATS(SE(Rx[31:24], 9) + SE(Ry[31:24], 9), 8); 
Rd[23:16] = SATS(SE(Rx[23:16], 9) + SE(Ry[23:16], 9), 8);
Rd[15:8] = SATS(SE(Rx[15:8], 9) + SE(Ry[15:8], 9), 8); 
Rd[7:0] = SATS(SE(Rx[7:0], 9) + SE(Ry[7:0], 9), 8);
I, II, III, IV.{d, x, y} ∈ {0, 1, …, 15}

Rev1+

111

Rx

00000

Ry

001000110010

Rd

3

4

5

4

12

4

3

padds.uh Rd, Rx, Ry

Rd[31:16] = SATU(ZE(Rx[31:16], 17) + ZE(Ry[31:16], 17), 16);
Rd[15:0] = SATU(ZE(Rx[15:0], 17) + ZE(Ry[15:0], 17), 16);
I, II, III, IV.{d, x, y} ∈ {0, 1, …, 15}

Rev1+

111

Rx

00000

Ry

001000001000

Rd

3

4

5

4

12

4

4

padds.sh Rd, Rx, Ry

Rd[31:16] = SATS(SE(Rx[31:16], 17) + SE(Ry[31:16], 17), 16);
Rd[15:0] = SATS(SE(Rx[15:0], 17) + SE(Ry[15:0], 17), 16);
I, II, III, IV.{d, x, y} ∈ {0, 1, …, 15}

Rev1+

111

Rx

00000

Ry

001000000100

Rd

3

4

5

4

12

4

Description

Perform addition of four pairs of packed bytes or two pairs of halfwords. The result is saturated to either unsigned bytes (padds.ub), signed bytes (padds.sb), unsigned halfwords (padds.uh) or signed halfwords (padds.sh).

Status Flags:

Q:

Flag set if saturation occured in one or more of the partial operations.

V:

Not affected.

N:

Not affected.

Z:

Not affected.

C:

Not affected.